# 题目: 66. 加一

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

# 示例1:

输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。

# 示例2:

输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。

# 题解: 模拟

这里的数字 +1, 所需要考虑的其实是进位的问题,也就是末尾连续为9的情况。

# 代码

/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    let res = digits.length
    while(res){
        if(digits[res-1] !== 9)  break    
        res--
    }
    if(res === 0){
        // 全部是9
        let result = new Array(digits.length+1).fill(0)
        result[0] = 1
        return result
    }else{
        // 注意 数组从0开始
        digits[res-1] += 1
        for(let i=res;i<digits.length;i++){
            digits[i] = 0
        }
        return digits
    }

};

# 参考资料